﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Threading.Tasks;
//using XmppDotNet.Xmpp;
//using XmppDotNet;
//using XmppDotNet.Extensions.Client.Presence;
//using XmppDotNet.Extensions.Client.Message;
//using XmppDotNet.Transport;
//using XmppDotNet.Transport.Socket;
//using System.Diagnostics;
//using System.Reactive.Linq;
//using XmppDotNet.Xmpp.Base;
//using XmppDotNet.Xml;

//namespace XmppConsoleTest
//{
//    public class Program3
//    {
//        static async Task Main(string[] args)
//        {
//            // 目标联系人（对方的 JID）
//            string targetJid = "lsj@iZ1dmx6k41t87iZ";

//            // 设置 XmppClient 并配置相关属性
//            var xmppClient = new XmppClient(
//                    conf =>
//                    {
//                        conf.UseSocketTransport(new StaticNameResolver(new Uri("tcp://139.224.234.161:5222")))
//                        .WithCertificateValidator(new AlwaysAcceptCertificateValidator());
//                    }
//                )
//            {
//                Jid = "jxh@iZ1dmx6k41t87iZ", // XMPP 用户 JID
//                Password = "hilink123456"  // 登录密码
//            };

//            // 订阅所有传入的消息
//            xmppClient.XmppXElementReceived
//                 .Where(el => el is Message)
//                 .Subscribe(el =>
//                 {
//                     // handle the message here
//                     Debug.WriteLine(el.ToString());
//                 });

//            // 订阅所有传入的聊天消息
//            xmppClient.XmppXElementReceived
//                .Where(el =>
//                    el.OfType<Message>()
//                    && el.Cast<Message>().Type == MessageType.Chat)
//                .Subscribe(el =>
//                {
//                    // handle the message here
//                    Debug.WriteLine(el.ToString());
//                });

//            // 连接到服务器
//            await xmppClient.ConnectAsync();
//            Console.WriteLine("已连接到 XMPP 服务器！");

//            // 发送在线状态到服务器
//            await xmppClient.SendPresenceAsync(Show.Chat, "空闲，欢迎聊天");

//            // 等待用户输入消息并发送
//            Console.WriteLine("请输入要发送的消息，输入 'exit' 退出：");

//            while (true)
//            {
//                Console.Write("你：");
//                string message = Console.ReadLine();

//                if (string.IsNullOrWhiteSpace(message)) continue;
//                if (message.ToLower() == "exit") break;

//                // 发送消息到目标联系人
//                await xmppClient.SendChatMessageAsync(targetJid, message);
//                Console.WriteLine("消息已发送！");
//            }

//            // 关闭连接
//            await xmppClient.DisconnectAsync();
//            Console.WriteLine(" 连接已断开，程序退出！");
//        }
//    }
//}
